In model driven engineering, formal models are fundamental software artifacts that are created and manipulated using automated transforms. Generally, model transforms represent a class of applications that transform a structured input to a structured or text output. The input models to such transforms are often large and complex. Such transforms are typically built-in and prepackaged in various modeling tools.
Generally, transform end-users need to understand the semantics of a transform to use it effectively, but without having to examine the transform implementation. As such, a transform is typically used as a “black-box” by end-users, and often, end-users lack the expertise to understand the implementation details